package model

import (
	"rabbit_love/src/utils"
	"time"
)

type DataType string

const (
	Sign  DataType = "sign"
	Daily DataType = "daily"
)

type DailyTable struct {
	utils.TimeMixin

	LoverRelationTableId int64    `gorm:"column:loverRelationId"`                                       // 情侣关系id 相同情侣可查看，通过索引快速查看
	UserID               int64    `gorm:"column:userId" json:"userId"`                                  // 标识发表用户
	Type                 DataType `gorm:"column:type; type:ENUM('sign', 'daily')" json:"type"`          // 该文段的类型：打卡、日常
	Title                string   `gorm:"column:title; type:VARCHAR(256); default:null" json:"title"`   // 标题
	Data                 string   `gorm:"column:data; type:TEXT; default:null" json:"data"`             // 内容
	PicUrl               string   `gorm:"column:picUrl; type:VARCHAR(256); default:null" json:"picUrl"` // 图片
	Read                 bool     `gorm:"column:read; type:TINYINT(2); default:0" json:"read"`          // 对方有没有读
}

func (*DailyTable) TableName() string {
	return "data_daily_table"
}

type AnniversaryTable struct {
	utils.TimeMixin

	LoverRelationTableId int64     `gorm:"column:loverRelationId"` // 情侣关系id
	UserTableId          int64     `gorm:"column:userId"`
	OccurrenceDate       time.Time `gorm:"column:occurrenceDate; type:TIMESTAMP(6); NOT NULL" json:"occurrenceDate"`
	Name                 string    `gorm:"column:name; type:VARCHAR(64); NOT NULL" json:"name"`
	Data                 string    `gorm:"column:data; type:VARCHAR(128); NOT NULL" json:"data"`
	Read                 bool      `gorm:"column:read; type:TINYINT(2); default:false" json:"read"`
}

func (*AnniversaryTable) TableName() string {
	return "anniversary_table"
}
